package net.dgg.rz.common.utils;

import net.dgg.iboss.base.util.datatable.domain.DataTableRequest;

import java.util.HashMap;
import java.util.Map;

/**
 * 分页排序
 *
 * @author wmj
 */
public class OrderHandleUtils {

    private static Map<String, String> orderMap = null;

    public static String getColumn(String order) {
        return getOrderMap().get(order);
    }

    private static Map<String, String> getOrderMap() {
        if (null == orderMap) {
            orderMap = new HashMap<>();
            orderMap.put("createTime", "create_Time");
            orderMap.put("updateTime", "update_Time");
        }
        return orderMap;
    }

    /**
     *
     * @param r DataTableRequest
     * @param map 参数
     * @param fileMap 需要转换的字段名
     *                比如java字段 createTime 对应数据库字段 create_time 则Map赋值 map.put("createTime","create_time");
     *                fileMap赋值方式：map.put("java实体类字段名","表对应的字段名（有别名时需要加别名进行区分）");
     */
    public static void getOrderCol(DataTableRequest r, Map map, Map fileMap) {
        //排序列
        String orderCol = null;
        //排序方式
        String sortType = null;
        if (null != r.getOrder() && r.getOrder().size() > 0) {
            int orderColIndex = r.getOrder().get(0).getColumn();
            orderCol = r.getColumns().get(orderColIndex).getData();
            sortType = r.getOrder().get(0).getDir();
        }
        if (StringUtils.isNotEmpty(fileMap) && fileMap.size() > 0) {
            orderMap = fileMap;
        }
        map.put("orderColumn", getColumn(orderCol));
        map.put("orderDir", sortType);
    }
}
